{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Gradient descent and stochastic gradient descent from scratch\n",
    "\n",
    "In the previous tutorials,\n",
    "we decided *which direction* to move each parameter\n",
    "and *how much* to move each parameter\n",
    "by taking the gradient of the loss with respect to each parameter.\n",
    "We also scaled each gradient by some learning rate, \n",
    "although we never really explained where this number comes from.\n",
    "We then updated the parameters by performing a gradient step $\\theta_{t+1} \\gets \\eta \\nabla_{\\theta}\\mathcal{L}_t$. \n",
    "Each update is called a *gradient step*\n",
    "and the process is called *gradient descent*.\n",
    "\n",
    "The hope is that if we just take a whole lot of gradient steps,\n",
    "we'll wind up with an awesome model that gets very low loss on our training data,\n",
    "and that this performance might generalize to our hold-out data. \n",
    "But as a sharp reader, you might have any number of doubts. You might wonder, for instance: \n",
    "\n",
    "* Why does gradient descent work?\n",
    "* Why doesn't the gradient descent algorithm get stuck on the way to a low loss?\n",
    "* How should we choose a learning rate?\n",
    "* Do all the parameters need to share the same learning rate?\n",
    "* Is there anything we can do to speed up the process?\n",
    "* Why does the solution of gradient descent over training data generalize well to test data?\n",
    "\n",
    "Some answers to these questions are known. \n",
    "For other questions, we have some answers but only for simple models like logistic regression that are easy to analyze.\n",
    "And for some of these questions, we know of best practices that seem to work even if they're not supported by any conclusive mathematical analysis. \n",
    "Optimization is a rich area of ongoing research. \n",
    "In this chapter, we'll address the parts that are most relevant for training neural networks. \n",
    "To begin, let's take a more formal look at gradient descent."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Gradient descent in one dimension\n",
    "\n",
    "To get going, consider a simple scenario in which we have one parameter to manipulate.\n",
    "Let's also assume that our objective associates every value of this parameter with a value.\n",
    "Formally, we can say that this objective function has the signature $f: \\mathbb{R} \\rightarrow \\mathbb{R}$.\n",
    "It maps from one real number to another.\n",
    "\n",
    "Note that the domain of $f$ is in one-dimensional. According to its Taylor series expansion as shown in the [introduction chapter](./optimization-intro.ipynb), we have\n",
    "\n",
    "$$f(x + \\epsilon) \\approx f(x) + f'(x) \\epsilon.$$\n",
    "\n",
    "Substituting $\\epsilon$ with $-\\eta f'(x)$ where $\\eta$ is a constant, we have\n",
    "\n",
    "$$f(x - \\eta f'(x)) \\approx f(x) -  \\eta f'(x)^2.$$\n",
    "\n",
    "If $\\eta$ is set as a small positive value, we obtain\n",
    "\n",
    "$$f(x - \\eta f'(x)) \\leq f(x).$$\n",
    "\n",
    "In other words, updating $x$ as \n",
    "\n",
    "$$x := x - \\eta f'(x)$$ \n",
    "\n",
    "may reduce the value of $f(x)$ if its current derivative value $f'(x) \\neq 0$. Since the derivative $f'(x)$ is a special case of gradient in one-dimensional domain, the above update of $x$ is gradient descent in one-dimensional domain.\n",
    "\n",
    "The positive scalar $\\eta$ is called the learning rate or step size. Note that a larger learning rate increases the chance of overshooting the global minimum and oscillating. However, if the learning rate is too small, the convergence can be very slow. In practice, a proper learning rate is usually selected with experiments."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Gradient descent  over multi-dimensional parameters\n",
    "\n",
    "Consider the objective function $f: \\mathbb{R}^d \\rightarrow \\mathbb{R}$ \n",
    "that takes any multi-dimensional vector $\\mathbf{x} = [x_1, x_2, \\ldots, x_d]^\\top$ as its input. \n",
    "The gradient of $f(\\mathbf{x})$ with respect to $\\mathbf{x}$ is defined by the vector of partial derivatives: \n",
    "\n",
    "$$\\nabla_\\mathbf{x} f(\\mathbf{x}) = \\bigg[\\frac{\\partial f(\\mathbf{x})}{\\partial x_1}, \\frac{\\partial f(\\mathbf{x})}{\\partial x_2}, \\ldots, \\frac{\\partial f(\\mathbf{x})}{\\partial x_d}\\bigg]^\\top.$$\n",
    "\n",
    "To keep our notation compact we may use the notation $\\nabla f(\\mathbf{x})$ and $\\nabla_\\mathbf{x} f(\\mathbf{x})$ \n",
    "interchangeably when there is no ambiguity about which parameters we are optimizing over.\n",
    "In plain English, each element $\\partial f(\\mathbf{x})/\\partial x_i$ of the gradient \n",
    "indicates the rate of change for $f$ at the point $\\mathbf{x}$ \n",
    "with respect to the input $x_i$ only. \n",
    "To measure the rate of change of $f$ in any direction \n",
    "that is represented by a unit vector $\\mathbf{u}$, \n",
    "in multivariate calculus, we define the directional derivative of $f$ at $\\mathbf{x}$ \n",
    "in the direction of $\\mathbf{u}$ as\n",
    "\n",
    "$$D_\\mathbf{u} f(\\mathbf{x}) = \\lim_{h \\rightarrow 0}  \\frac{f(\\mathbf{x} + h \\mathbf{u}) - f(\\mathbf{x})}{h},$$\n",
    "\n",
    "which can be rewritten according to the chain rule as\n",
    "\n",
    "$$D_\\mathbf{u} f(\\mathbf{x}) = \\nabla f(\\mathbf{x}) \\cdot \\mathbf{u}.$$\n",
    "\n",
    "Since $D_\\mathbf{u} f(\\mathbf{x})$ gives the rates of change of $f$ at the point $\\mathbf{x}$ \n",
    "in all possible directions, to minimize $f$, \n",
    "we are interested in finding the direction where $f$ can be reduced fastest. \n",
    "Thus, we can minimize the directional derivative $D_\\mathbf{u} f(\\mathbf{x})$ with respect to $\\mathbf{u}$. \n",
    "Since $D_\\mathbf{u} f(\\mathbf{x}) = \\|\\nabla f(\\mathbf{x})\\| \\cdot \\|\\mathbf{u}\\|  \\cdot \\text{cos} (\\theta) = \\|\\nabla f(\\mathbf{x})\\|  \\cdot \\text{cos} (\\theta)$, \n",
    "where $\\theta$ is the angle between $\\nabla f(\\mathbf{x})$ \n",
    "and $\\mathbf{u}$, the minimum value of $\\text{cos}(\\theta)$ is -1 when $\\theta = \\pi$. \n",
    "Therefore, $D_\\mathbf{u} f(\\mathbf{x})$ is minimized \n",
    "when $\\mathbf{u}$ is at the opposite direction of the gradient $\\nabla f(\\mathbf{x})$. \n",
    "Now we can iteratively reduce the value of $f$ with the following gradient descent update:\n",
    "\n",
    "$$\\mathbf{x} := \\mathbf{x} - \\eta \\nabla f(\\mathbf{x}),$$\n",
    "\n",
    "where the positive scalar $\\eta$ is called the learning rate or step size."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Stochastic gradient descent\n",
    "\n",
    "However, the gradient descent algorithm may be infeasible when the training data size is huge. Thus, a stochastic version of the algorithm is often used instead. \n",
    "\n",
    "To motivate the use of stochastic optimization algorithms, note that when training deep learning models, we often consider the objective function as a sum of a finite number of functions:\n",
    "\n",
    "$$f(\\mathbf{x}) = \\frac{1}{n} \\sum_{i = 1}^n f_i(\\mathbf{x}),$$\n",
    "\n",
    "where $f_i(\\mathbf{x})$ is a loss function based on the training data instance indexed by $i$. It is important to highlight that the per-iteration computational cost in gradient descent scales linearly with the training data set size $n$. Hence, when $n$ is huge, the per-iteration computational cost of gradient descent is very high.\n",
    "\n",
    "In view of this, stochastic gradient descent offers a lighter-weight solution. At each iteration, rather than computing the gradient $\\nabla f(\\mathbf{x})$, stochastic gradient descent randomly samples $i$ at uniform and computes $\\nabla f_i(\\mathbf{x})$ instead. The insight is, stochastic gradient descent uses $\\nabla f_i(\\mathbf{x})$ as an unbiased estimator of $\\nabla f(\\mathbf{x})$ since\n",
    "\n",
    "$$\\mathbb{E}_i \\nabla f_i(\\mathbf{x}) = \\frac{1}{n} \\sum_{i = 1}^n \\nabla f_i(\\mathbf{x}) = \\nabla f(\\mathbf{x}).$$\n",
    "\n",
    "\n",
    "In a generalized case, at each iteration a mini-batch $\\mathcal{B}$ that consists of indices for training data instances may be sampled at uniform with replacement. \n",
    "Similarly, we can use \n",
    "\n",
    "$$\\nabla f_\\mathcal{B}(\\mathbf{x}) = \\frac{1}{|\\mathcal{B}|} \\sum_{i \\in \\mathcal{B}}\\nabla f_i(\\mathbf{x})$$ \n",
    "\n",
    "to update $\\mathbf{x}$ as\n",
    "\n",
    "$$\\mathbf{x} := \\mathbf{x} - \\eta \\nabla f_\\mathcal{B}(\\mathbf{x}),$$\n",
    "\n",
    "where $|\\mathcal{B}|$ denotes the cardinality of the mini-batch and the positive scalar $\\eta$ is the learning rate or step size. Likewise, the mini-batch stochastic gradient $\\nabla f_\\mathcal{B}(\\mathbf{x})$ is an unbiased estimator for the gradient $\\nabla f(\\mathbf{x})$:\n",
    "\n",
    "$$\\mathbb{E}_\\mathcal{B} \\nabla f_\\mathcal{B}(\\mathbf{x}) = \\nabla f(\\mathbf{x}).$$\n",
    "\n",
    "This generalized stochastic algorithm is also called mini-batch stochastic gradient descent and we simply refer to them as stochastic gradient descent (as generalized). The per-iteration computational cost is $\\mathcal{O}(|\\mathcal{B}|)$. Thus, when the mini-batch size is small, the computational cost at each iteration is light.\n",
    "\n",
    "There are other practical reasons that may make stochastic gradient descent more appealing than gradient descent. If the training data set has many redundant data instances, stochastic gradients may be so close to the true gradient $\\nabla f(\\mathbf{x})$ that a small number of iterations will find useful solutions to the optimization problem. In fact, when the training data set is large enough, stochastic gradient descent only requires a small number of iterations to find useful solutions such that the total computational cost is lower than that of gradient descent even for just one iteration. Besides, stochastic gradient descent can be considered as offering a regularization effect especially when the mini-batch size is small due to the randomness and noise in the mini-batch sampling. Moreover, certain hardware processes mini-batches of specific sizes more efficiently."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Experiments\n",
    "\n",
    "For demonstrating the aforementioned gradient-based optimization algorithms, we use the regression problem in the [linear regression chapter](../chapter02_supervised-learning/linear-regression-scratch.ipynb) as a case study."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2017-10-22T11:33:26.904557Z",
     "start_time": "2017-10-22T11:33:26.893195Z"
    }
   },
   "outputs": [],
   "source": [
    "# Mini-batch stochastic gradient descent.\n",
    "def sgd(params, lr, batch_size):\n",
    "    for param in params:\n",
    "        param[:] = param - lr * param.grad / batch_size"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2017-10-22T11:33:27.603593Z",
     "start_time": "2017-10-22T11:33:26.907611Z"
    }
   },
   "outputs": [],
   "source": [
    "import mxnet as mx\n",
    "from mxnet import autograd\n",
    "from mxnet import ndarray as nd\n",
    "from mxnet import gluon\n",
    "import random\n",
    "\n",
    "mx.random.seed(1)\n",
    "random.seed(1)\n",
    "\n",
    "# Generate data.\n",
    "num_inputs = 2\n",
    "num_examples = 1000\n",
    "true_w = [2, -3.4]\n",
    "true_b = 4.2\n",
    "X = nd.random_normal(scale=1, shape=(num_examples, num_inputs))\n",
    "y = true_w[0] * X[:, 0] + true_w[1] * X[:, 1] + true_b\n",
    "y += .01 * nd.random_normal(scale=1, shape=y.shape)\n",
    "dataset = gluon.data.ArrayDataset(X, y)\n",
    "\n",
    "# Construct data iterator.\n",
    "def data_iter(batch_size):\n",
    "    idx = list(range(num_examples))\n",
    "    random.shuffle(idx)\n",
    "    for batch_i, i in enumerate(range(0, num_examples, batch_size)):\n",
    "        j = nd.array(idx[i: min(i + batch_size, num_examples)])\n",
    "        yield batch_i, X.take(j), y.take(j)\n",
    "\n",
    "# Initialize model parameters.\n",
    "def init_params():\n",
    "    w = nd.random_normal(scale=1, shape=(num_inputs, 1))\n",
    "    b = nd.zeros(shape=(1,))\n",
    "    params = [w, b]\n",
    "    for param in params:\n",
    "        param.attach_grad()\n",
    "    return params\n",
    "\n",
    "# Linear regression.\n",
    "def net(X, w, b):\n",
    "    return nd.dot(X, w) + b\n",
    "\n",
    "# Loss function.\n",
    "def square_loss(yhat, y):\n",
    "    return (yhat - y.reshape(yhat.shape)) ** 2 / 2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2017-10-22T11:33:27.874542Z",
     "start_time": "2017-10-22T11:33:27.605484Z"
    }
   },
   "outputs": [],
   "source": [
    "%matplotlib inline\n",
    "import matplotlib as mpl\n",
    "mpl.rcParams['figure.dpi']= 120\n",
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "\n",
    "def train(batch_size, lr, epochs, period):\n",
    "    assert period >= batch_size and period % batch_size == 0\n",
    "    w, b = init_params()\n",
    "    total_loss = [np.mean(square_loss(net(X, w, b), y).asnumpy())]\n",
    "    # Epoch starts from 1.\n",
    "    for epoch in range(1, epochs + 1):\n",
    "        # Decay learning rate.\n",
    "        if epoch > 2:\n",
    "            lr *= 0.1\n",
    "        for batch_i, data, label in data_iter(batch_size):\n",
    "            with autograd.record():\n",
    "                output = net(data, w, b)\n",
    "                loss = square_loss(output, label)\n",
    "            loss.backward()\n",
    "            sgd([w, b], lr, batch_size)\n",
    "            if batch_i * batch_size % period == 0:\n",
    "                total_loss.append(\n",
    "                    np.mean(square_loss(net(X, w, b), y).asnumpy()))\n",
    "        print(\"Batch size %d, Learning rate %f, Epoch %d, loss %.4e\" % \n",
    "              (batch_size, lr, epoch, total_loss[-1]))\n",
    "    print('w:', np.reshape(w.asnumpy(), (1, -1)), \n",
    "          'b:', b.asnumpy()[0], '\\n')\n",
    "    x_axis = np.linspace(0, epochs, len(total_loss), endpoint=True)\n",
    "    plt.semilogy(x_axis, total_loss)\n",
    "    plt.xlabel('epoch')\n",
    "    plt.ylabel('loss')\n",
    "    plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2017-10-22T11:33:31.340137Z",
     "start_time": "2017-10-22T11:33:27.876673Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Batch size 1, Learning rate 0.200000, Epoch 1, loss 5.5937e-05\n",
      "Batch size 1, Learning rate 0.200000, Epoch 2, loss 8.0473e-05\n",
      "Batch size 1, Learning rate 0.020000, Epoch 3, loss 4.9757e-05\n",
      "w: [[ 1.99949276 -3.39981604]] b: 4.19997 \n",
      "\n"
     ]
    },
    {
     "data": {
      "image/png": "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\nu7q834GU7KWODsZVb6sij/+buw7rh3/brIVPb9TGHryhA5Ac6RIqy+QMgcdzjx299NVP1tpKa+0G\n/4ek7Ym+355yJ+ukTKXyCP2TR7rMtdk3HFsZ1xfZHbdSaYxUWjTUd/voC9m+6mj4q21u1/r9Ndp+\noN6bLey2EWzcX3vEF+Bw2MYMm+7sYZ9iov3fm3v09UfW6DP3LfMC46RIhbLUFyr/vqFCd70c+/St\njAtY7tDke0pH6oSJhZKk1ZF1P7/117W64BevBjKrvztuMJs8apgmjIgdrMjPDmnyqKE6cdIISdJf\nV+7TF/+4Uq9sORCz3qZ/jUo3OHc1/N3c1qEL7lyic378sheM/OHHfewyTPT7xA+5+9dMde/XXxG/\n86VtqmtO3MoD9S3t+vhvlurcH7+c0P7m59aV6ZJfv9ZpEpUkvRZX/XbXsn3H98ZxWxKfUwCOLF1C\n5WpJM40xw+OOn+q7PDDGmIXGGCtnCDwlRCuVqREq/QufX3RCbMtrT2Zk+3v8ejqDuzYSKvOGhDR2\neI533B/+9lfHBtSXNlfqlS3RF7/LT3IWEjjY0NopZPkdbGj1hlklaVcf1iUMJ2CG+WNvORXX+pZ2\nrYlUhEsjE3QmjMhVZqRy95c3O29p6A9Bja3tXhVvStEwHT/BCZU7DjRo+4F6Pbx8jzaW1eqCX7za\n5c+xdm+1Lr/79T5vndgTbviYNjpPY3y/b0maPiZPxhjddukcjS90AufzG8p1zW+X6+Jfveb19VbU\nRJ8Px4zNl9R1qHxz52FtKqvVroONeiYy1N1VNXvksGxvlv3+mtjnmr9C797vVt/SR4caWnXPKzt6\n8qP3yW3PbtKbuw5rR1WDnlvXk0U3+uaO5zdr9Z5q/aaLn+XVLQdivnYrlWW+x2pP3N9Sc1uHfv/6\nzkG/kQGQCtIlVD4qKVPOtoqSnB12JF0naZm1NnGvXF2w1i601ho5Q+ApIeUqlb5QectFx2nV/5yv\nD84eI6nzDibxrLV6uyIaKuMnUrje2HFQn31ghd7a5Szf4k4Mys8JxYQMfziMX7fypc2VenWr80I3\nvjBXF50QLYgfaQi8PC4w7O7lLjUb9tfo5Nte0FX3LxuwcLm/uklv7uq8lM3kkU7IycrM8Cp6Xa3p\nuc8XuGMm+Ywaqim+yq9/RnhLe1iPvNX5z+++V9/Rm7sO6/vPbFRbAt7otLaHvZ7RacXDNDo/tjtm\n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\npSsjAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x10dd61dd8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "train(batch_size=1, lr=0.2, epochs=3, period=10)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2017-10-22T11:33:32.042704Z",
     "start_time": "2017-10-22T11:33:31.342902Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Batch size 1000, Learning rate 0.999000, Epoch 1, loss 1.1561e-01\n",
      "Batch size 1000, Learning rate 0.999000, Epoch 2, loss 8.4421e-04\n",
      "Batch size 1000, Learning rate 0.099900, Epoch 3, loss 6.9547e-04\n",
      "w: [[ 2.00893021 -3.36536145]] b: 4.19384 \n",
      "\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x11040b4a8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "train(batch_size=1000, lr=0.999, epochs=3, period=1000)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2017-10-22T11:33:33.949365Z",
     "start_time": "2017-10-22T11:33:32.045137Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Batch size 10, Learning rate 0.200000, Epoch 1, loss 4.9184e-05\n",
      "Batch size 10, Learning rate 0.200000, Epoch 2, loss 4.9389e-05\n",
      "Batch size 10, Learning rate 0.020000, Epoch 3, loss 4.8990e-05\n",
      "w: [[ 1.99998689 -3.39983392]] b: 4.20028 \n",
      "\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x10caea208>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "train(batch_size=10, lr=0.2, epochs=3, period=10)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2017-10-22T11:33:34.868072Z",
     "start_time": "2017-10-22T11:33:33.951738Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Batch size 10, Learning rate 5.000000, Epoch 1, loss nan\n",
      "Batch size 10, Learning rate 5.000000, Epoch 2, loss nan\n",
      "Batch size 10, Learning rate 0.500000, Epoch 3, loss nan\n",
      "w: [[ nan  nan]] b: nan \n",
      "\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAApMAAAG8CAYAAACCBC6DAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAASdAAAEnQB3mYfeAAAIABJREFUeJzs3Xd4VFX+x/H3SQcCoUOogQCRTlBBURcQ2ypYkLUXWF27\nq66yrgV7L6iw4k93Vda2KqggAiq2tQNSAqGFSAskIWBIAqQn5/fHDMMQAyRhkjvl83qeeZL53jtz\nv6OBfLj3nnOMtRYRERERkboIc7oBEREREQlcCpMiIiIiUmcKkyIiIiJSZwqTIiIiIlJnCpMiIiIi\nUmcKkyIiIiJSZwqTIiIiIlJnCpMiIiIiUmcKkyIiIiJSZwqTIiIiIlJnCpMiIiIiUmcKkyIiIiJS\nZwqTIiIiIlJnEU43EIyMMXHAcCADKHW4HREREZFDiQI6A/+z1ubX9sUKk/VjODDb6SZEREREauEc\n4OPavkhhsn5kAMyaNYsePXo43YuIiIjIQaWnp3PuueeCO7/UlsJk/SgF6NGjB3379nW6FxEREZGa\nqNOteRqAIyIiIiJ1pjApIiIiInWmMCkiIiIidaYwKSIiIiJ1pjApIiIiInWmMCkiIiIidaYwKSIi\nIiJ1pjApIiIiInWmMCkiIiIidaYwKSIiIiJ1pjApIiIiInWmMCkiIiIidaYwKSIiIuJnrLUs2pjL\ntW/+wvKMPKfbOaQIpxsQEREREZfS8krmrszkte83sXJbPgBREeFMvTjZ4c4OTmFSRERExGG79pby\nzqItvPHTJrYXlHjqUeFhxEZHYK3FGONcg4egMCkiIiLikPSc3bz2wyY+XLqV4rJKT711bBSXHdeV\nS4d2pU3TaAc7PDyFSREREZEGZK3lu/U7efX7jfwvbccB245q35Q/n9iNswd2ICYy3KEOa0dhUkRE\nRKQBFJdVMGvZNl77YSNp2/ccsG3UUW256sRuHJ/Yym8vZx9MyIVJY8wrwBigCbAZuNtaO6fKPscD\nPwD3WWsfafguRUREJFjkFBTz5s+beXvhFnL3lnrqjSLDGXd0JyackED3NrEOdnhkQi5MApOBm621\nJcaYY4EvjDHdrbW/ARhjwoDngMVONikiIiKBbVVmPq9+v5E5KZmUVVhPPT4uhiuHJXDRsZ1p3jjK\nwQ59I+TCpLV2rfdTIAroCPzmrl0DLATiGrg1ERERCXAVlZYv12zn1e83snBj7gHbBnZuzlUnduOP\n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\n/w/c4IIGeS7EjAAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1104ec550>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "train(batch_size=10, lr=5, epochs=3, period=10)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2017-10-22T11:33:36.095110Z",
     "start_time": "2017-10-22T11:33:34.872379Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Batch size 10, Learning rate 0.002000, Epoch 1, loss 9.1294e+00\n",
      "Batch size 10, Learning rate 0.002000, Epoch 2, loss 6.1059e+00\n",
      "Batch size 10, Learning rate 0.000200, Epoch 3, loss 5.8656e+00\n",
      "w: [[ 0.9720636  -1.67973936]] b: 1.42253 \n",
      "\n"
     ]
    },
    {
     "data": {
      "image/png": "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\neh4wodP7VMIDWEG6m0mjx7RcZ2H1daXtlqRlu14CXs/j39d3mWl3PIEfk/7zfy3H6TPApcDUTu9T\nBxTfnn0AAAQSSURBVMfyjiHGMir1HJ9jMKaO0YbjeRRwC+mi27dI15HcAnyxrl7XxKiPoJqZmZlZ\nUTwH1czMzMyK4gTVzMzMzIriBNXMzMzMiuIE1czMzMyK4gTVzMzMzIriBNXMzMzMiuIE1czMzMyK\n4gTVzMzMzIriBNXMzMzMiuIE1czM2ibpbEkhaXKn+2JmvcMJqpmZmZkVxQmqmZmZmRXFCaqZmZmZ\nFcUJqplZF5C0vaQrJa2UtEHSo5KOq7x/YJ4LeqSkcyW9KOl1STdI2qHB9uZJ+pukNyS9JGmRpO0b\n1JsuaUDSqlz3cUnnNOjiJEkLJb0mabWkBZI2H+VhMLM+8Z5Od8DMzIYmaSrwVyCAS4BVwBzgCkkT\nI+KiSvWzcr3zgW2A04BbJc2IiDfy9o4FFgD3Ad8HpgKnAvtJ2isiXsv19gTuAt4CLgdWADsDX8if\nUzUA/DNvbybwNeDfwBmjNQ5m1j+coJqZle8cYBzwsYh4OZddJun3wNmSfl2puxWwe0SsBZD0ACl5\n/DrwS0mbkJLXR4ADImJ9rrcU+CNwOvDDvK2LAQEzI+LZ2gdIOrNBHx+MiOMrdbYGjscJqpm1waf4\nzcwKJknA4cCS/HJy7QHcDGxBOmJZc1UtOc0WAy8Ah+TXs0hHVi+tJacAEXEjsBz4fP7cKcABwJXV\n5DTXjQZdvazu9V3A1pImvpv9NTMDH0E1MyvdFGAScEJ+NLIN8Gr++cnqGxERkp4CpuWiD+Xnxxts\nZzmwf/55p/z8SIv9fLbuda0/WwJrWtyGmRngBNXMrHS1M12LgN82qfMP4KNj052m3m5SrjHthZn1\nBCeoZmZlWwWsBcZFxK3NKkmqJai71pUL2IWUxAI8k593A/5ct5ndKu8/nZ/3aK/bZmbt8xxUM7OC\nRcTbwLXA4ZIGJYt5rmjVMZImVF7PBbYFbsqv7yddXX+SpM0q25kD7A7cmD93FXAncJykHes+00dF\nzWyj8hFUM7PynQl8GrhX0nzgMdLV+jOBg/PPNa8ASyUtIC0fdRrwFDAfICLeknQGaZmpv+SVAGrL\nTK0ALqxs61vAUuABSZeTlpGaRrqQasbG2FEzM3CCamZWvIhYKWlv4AfAYcApwMvAowxexulcYE/S\neqQTgNuAUyJiXWV7CyWtIyW+5wOvA9cDZ9TWQM31/i7pE8CPgJOB8aQpAAMbYz/NzGrUeLUQMzPr\nJpIOBG4H5kXE4g53x8xsRDwH1czMzMyK4gTVzMzMzIriBNXMzMzMiuI5qGZmZmZWFB9BNTMzM7Oi\nOEE1MzMzs6I4QTUzMzOzojhBNTMzM7OiOEE1MzMzs6I4QTUzMzOzojhBNTMzM7OiOEE1MzMzs6I4\nQTUzMzOzojhBNTMzM7OiOEE1MzMzs6L8D7y0IKXhtKChAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x10aac4a90>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "train(batch_size=10, lr=0.002, epochs=3, period=10)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Next\n",
    "[Gradient descent and stochastic gradient descent with Gluon](../chapter06_optimization/gd-sgd-gluon.ipynb)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "For whinges or inquiries, [open an issue on  GitHub.](https://github.com/zackchase/mxnet-the-straight-dope)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
